<?php
/** 
*   针对管理员是否同意用户申请的状态的修改  中的uid未接收
*   模拟前台用户申请  中的用户名username 未接收
*/
namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class ExamineController extends Controller
{
    /**
    *   用户申请店铺列表页面
    */
    public function getIndex(Request $request)
    {
        // 接受搜索的关键字
        $search = $request -> input('search','');

        // 接受每页显示的条数
        $count = $request -> input('count',10); 

        // 获取店铺审核表(examine)里面的数据信息
        $data = DB::table('examine') -> where('username','like','%'.$search.'%') -> orderBy('state','desc') -> orderBy('utime','asc')  -> paginate($count);

        return view('admin.examine.index',['data'=>$data,'request'=>$request -> all()]);
    }

    /**
    *   用户申请店铺的详细信息显示
    */
    public function getInformation($id)
    {
        // 查询审核表(examine)里面对应id一条数据
        $data = DB::table('examine') -> where('id','=',$id) -> first();
        return view('admin.examine.information',['data'=>$data]);  
    }

    /**
    *   针对管理员是否同意用户申请的状态的修改
    */
    public function postUpdate(Request $request)
    {
        // 获取隐藏域传过来的id
        $arr = $request -> except('_token');

        // 查询审核表(examine)里面对应id一条数据
        $data = DB::table('examine') -> where('id','=',$arr['id']) -> first();

        // 获取管理员处理时间，并压入$arr中
        $arr['atime'] = time();

        //查询user表里的对应的id 
        $u = DB::table('user') -> where('username',$data['username']) -> get();

        // 用session获取获取处理申请管理员的id
        $arr['aid'] = session('adminid');

        // 修改数据
        $res = DB::table('examine') ->where('id',$arr['id']) -> update($arr);

        // 判断返回的影响行数 把操作的结果压入session
        if ($res > 0) {
            // 判断审核状态，将管理员给用户的反馈信息插入feedback表中
            if ($arr['state'] == 1) {
                // 根据username将user表里对应用户的merchant修改为卖家
                DB::table('user') -> where('username',$data['username']) -> update(['merchant'=>$arr['state']]);
                $content = '亲爱的'.$data['username'].'，恭喜您获得开店资格！！！';   
                
                

                // 将反馈内容插入message数据表中
                DB::table('message') -> insert(['suid'=>$u[0]['id'],'content'=>$content,'susername'=>$data['username'],'sumerchant'=>1,'time'=>$arr['atime'],'faid'=>session('adminid')]);
            }else if($arr['state'] == 4){
                $content = '亲爱的'.$data['username'].'，非常遗憾，您的开店资格申请未通过！！！';
                DB::table('user') -> where('username',$data['username']) -> update(['merchant'=>0]);
                // 将反馈内容插入message数据表中
                DB::table('message') -> insert(['suid'=>$u[0]['id'],'content'=>$content,'susername'=>$data['username'],'sumerchant'=>0,'time'=>$arr['atime'],'faid'=>session('adminid')]);
            }
            

            if ($arr['state'] == 2) {
                DB::table('user') ->where('username',$data['username']) -> update(['merchant'=>$arr['state']]);
                $content2 = '亲爱的'.$data['username'].'，非常抱歉,由于您的店铺运营出现某种错误，店铺在一段时间内被强制停止任何交易！！！';
                // dd($data['username']);
                // 插入数据
                // $res2 = DB::table('message') -> where('susername',$data['username']) -> orderBy('time','desc') -> first();
                DB::table('message') -> insert(['suid'=>$u[0]['id'],'content'=>$content2,'sumerchant'=>1,'susername'=>$data['username'],'time'=>$arr['atime'],'faid'=>session('adminid')]);
                // dd($res2);
                // DB::table('message') ->where('id',$res2['id']) -> update(['content'=>$content2,'faid'=>session('adminid')]);
            }else if($arr['state'] == 3){
                $content3 = '亲爱的'.$data['username'].'，您的店铺已被开启，可以正常运行了！';
                DB::table('user') -> where('username',$data['username']) -> update(['merchant'=>1]);
                // $res3 = DB::table('message') -> where('susername',$data['username']) -> orderBy('time','desc') -> first();
                DB::table('message') -> insert(['suid'=>$u[0]['id'],'content'=>$content3,'sumerchant'=>1,'susername'=>$data['username'],'time'=>$arr['atime'],'faid'=>session('adminid')]);
                // DB::table('message') ->where('id',$res3['id']) -> update(['content'=>$content3,'faid'=>session('adminid')]);
            }

            return redirect('/admin/examine/index') -> with('success','操作成功');
        }else{
            return back() -> with('error','操作成功');
        }
    }

    /**
    *   模拟前台用户申请
    */
    public function getAdd()
    {
        // 获取用户表user里username=222的用户，模拟用户发送开店申请
        $data = DB::table('user') -> where('username','=',session('homeusername')) -> first();
        return view('admin.examine.add',['data'=>$data]);  
    }

    // 插入数据
    public function postInsert(Request $request)
    {
        // 数据处理
        $arr = $request -> except('_token');

        // 获取提交时间，并压入$arr中
        $arr['utime'] = date('Y-m-d H:i:s',time());

        // 插入数据库
        $res = DB::table('examine') -> insert($arr);

        // 判断返回的影响行数 把操作的结果压入session
        if ($res) {
            return redirect('/admin/examine/index') -> with('success','申请成功');
        }else{
            return back() -> with('error','申请成功');
        }
    }
}
